JS - variabelen ophijsen
Wanneer JavaScript in een programma een nieuwe functie uitvoert, worden alle variabelen, die overal gedeclareerd zijn in de functie, verplaatst (of verheven, of gehesen) naar de top van de functie. Dit is een belangrijk concept om in gedachten te houden. Daarenboven wordt alleen de declaratie opgehesen, wat betekent dat alleen de aanwezigheid van de variabele wordt verplaatst naar de top. Alle toewijzingen blijven waar ze zijn. In het Engels heet dat variable hoisting.
variable hoisting
Het is zinvol is alle variabelen aanhet begin van een programma te declareren. Om dat duidelijk te maken bekijken we de volgende code: var getal = 256; print(getal, ": ", typeof getal); print(i, ": ",typeof i); var i = 0; print(i,": ",typeof i);
De eerste printopdracht doet precies wat je verwacht en toont 256: number. Bij de tweede printopdracht verwacht je een foutmelding, immers i
moet dan nog gedeclareerd worden. De opdracht toont
echter undefined: undefined. De laatste printopdracht toont 0: number.
Wat er achter de schermen gebeurt is het volgende: de JavaScriptinterpreter leest alle code en ’ziet’ dat er onder andere een variabele i
gedeclareerd wordt en direct wordt gebruikt in een toekenning. Bij de
uitvoering van het programma maakt de interpreter er deze code van:
var getal = 256, i; print(getal,": ",typeof getal); print(i,": ",typeof i); i = 0; print(i,": ",typeof i);
De declaratie van i
wordt omhoog gehesen (hoisting betekent hijsen), maar de toekenning blijft op zijn oorspronkelijke plaats. Dit is dan ook de reden dat het goed is om alle variabelen direct aan het begin van een
programma te declareren: je herinnert jezel er daarmee aan dat de variabelen bekend zijn vanaf het begin van de code.
Paragraaf